import { initPreferences } from '@vben/preferences';
import { unmountGlobalLoading } from '@vben/utils';

import { overridesPreferences } from './preferences';
import { info } from '#/api/system/config';
import { updatePreferences } from '@vben/preferences';

/**
 * 应用初始化完成之后再进行页面加载渲染
 */
async function initApplication() {
  // name用于指定项目唯一标识
  // 用于区分不同项目的偏好设置以及存储数据的key前缀以及其他一些需要隔离的数据
  const env = import.meta.env.PROD ? 'prod' : 'dev';
  const appVersion = import.meta.env.VITE_APP_VERSION;
  const namespace = `${import.meta.env.VITE_APP_NAMESPACE}-${appVersion}-${env}`;

  // app偏好设置初始化
  await initPreferences({
    namespace,
    overrides: overridesPreferences,
  });

  // 启动应用并挂载
  // vue应用主要逻辑及视图
  const { bootstrap } = await import('./bootstrap');
  await bootstrap(namespace);

  // 移除并销毁loading
  unmountGlobalLoading();

  // 从后端获取站点配置覆盖前端配置
  const siteSetting = await info({ group_code: 'site_setting' });
  updatePreferences({
    copyright: {
      companyName: siteSetting.site_name || 'Madong',
      companySiteLink: siteSetting.site_url || 'https://www.madong.tech',
      date: '2024',
      enable: true,
      icp: siteSetting.site_record_no || '',
      icpLink: siteSetting.site_icp_url || 'https://beian.miit.gov.cn/',
    },
    logo: {
      enable: true,
      source: siteSetting.site_logo || 'https://madong.tech/assets/images/logo.svg',
    },
    app: {
      name: siteSetting.site_name || 'MaDong Admin',
    }
  });
}





initApplication();
